home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 31
/
Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso
/
Aminet
/
dev
/
c
/
vbccm68ksrc.lha
/
vbcc
/
vlink
/
history
< prev
next >
Wrap
Text File
|
1999-03-07
|
11KB
|
221 lines
vlink history
=============
(ados/ehf): changes are relevant for AmigaDOS/EHF only
(elf): general ELF changes
(elf32ppc): changes are relevant for ELF32-PowerPC only
- 0.6d (13.02.99)
o (elf) The PowerUp ELF loader has its own constructor/destructor
functionality for .ctors and .dtors sections, so we have to
rename them to .ctor_/.dtor_ (elf32powerup executable only). The
contents can still be referenced by .ctors/.dtors, though.
- 0.6c (05.02.99)
o (elf) Elf32 supports vbcc's _INIT/_EXIT function, where constructor/
destructor function pointers will be placed into the .ctors and .dtors
sections. .ctors/.dtors are using the standard format, but compiler-
generated entries will not work - the linker has to create these sections.
If .ctors or .dtors is referenced, but no such section exists, the
linker will create an artificial absolute symbol with the value 0
instead.
o All targets use the standard format for constructor/destructor
sections, which means: first longword describes the number of pointers
or is -1 (vlink uses the latter one), when the init code has to deter-
mine the number itself. The last longword will always be a NULL pointer.
- 0.6b (16.01.99)
o Changed copyright.
o Compiles now under Irix 5.3.
- 0.6a (19.12.98)
o vlink should be prepared to support little-endian objects now. The
endianess of the whole linking procedure is determined when loading
the first object file. Consequently the following ones must use the same.
o Fixed some problems with constructor/destructor-type linker symbols in
small data mode. Although they were addressed base-relative, their
sections could not be coalesced with the small data section and their
offsets were never updated.
- 0.6 (24.10.98)
o The section offset for base-relative relocations was made target-
dependant. Consequently, -baseoff modifies the default setting for
the current output file format.
The following default offsets were defined:
amigaos/amigaehf: 0x7ffe, elf32ppcbe/elf32powerup: 0x7ff0.
o New target elf32powerup, which supports the PPC coprocessor boards
from Phase5. The format of elf32powerup executables is the same as
the format of elf32ppcbe relocatable objects, but no unknown symbols
are allowed and base relative relocations will be resolved.
o (elf): Linking with shared objects is supported, but they still cannot
be created by vlink.
o (elf): .sdata/.sbss and .sdata2/.sbss2 (EABI) will always be combined,
also in -multibase mode.
o (elf32ppc): _LinkerDB is no longer known to elf32ppcbe. It's an
elf32powerup-only symbol now.
o (elf32ppc): Linker symbols _SDA_BASE_ and _SDA2_BASE (EABI).
- 0.5f (08.10.98)
o (ados/ehf): The automatic constructor/destructor functions have to
begin with __INIT or __EXIT to avoid conflicts with ANSI-C identifiers.
- 0.5e (05.10.98)
o A target may create prioritized pointers or constants in a new
section. This feature is useful for buidling constructor/destructor
function pointer tables. Currently used by ados/ehf only.
o (ados/ehf): Global symbols beginning with _INIT or _EXIT will create an
entry into the constructor/destructor function pointer table.
These tables can be addressed by using the symbols __ctors and __dtors
(e.g. in the startup/cleanup code of a program).
The priority of these functions may be defined by specifying a number
behind the INIT/EXIT string. Example: _INIT_9_OpenLibs.
Otherwise their priority defaults to 0 and they will be positioned
in order of occurence.
- 0.5d (22.08.98)
o Faster memory allocation algorithm, using 256k chunks. Can be
activated by defining FASTALLOC.
o Directories are only scanned for shared objects, because of a possible
version extension. This is a great improvement under AmigaOS, because
the file system is not fast enough.
o When using the -dn option together with the previous two enhancements,
vlink is nearly 10(!) times faster than before, under AmigaOS.
- 0.5c (08.07.98)
o (ados/ehf): If the target is EHF and an undefined reference to a
symbol beginning with "@_" was detected, it will be automagically
generated by the linker, as long as a symbol without "@_" already
exists. The linker will create an artificial object unit with the
name of the referenced symbol (without "@_"), including a data section
called ".tocd", which reserves four bytes for the symbol pointer.
This nice feature allows the generation of @__name pointer symbols
in the TOC section on demand, which saves a lot of space.
- 0.5b (05.07.98)
o (elf32ppc): Implemented linker symbol _LinkerDB.
- 0.5a (28.06.98)
o Error 19 (symbol xxx (yyy) is already defined in...) was turned
into a warning.
o Option -w (suppress warnings) was missing in help text.
- 0.5 (27.06.98)
o Target specific linker symbol support. This feature is currently
only used by the AmigaDOS file format.
o (ados/ehf): Implemented linker symbols:
_DATA_BAS_, _DATA_LEN_, _BSS_LEN_, _LinkerDB, __BSSBAS, __BSSLEN,
__ctors, __dtors, __DATA_BAS, __DATA_LEN, __BSS_LEN, __RESIDENT.
o -v shows the default target.
- 0.4 (05.06.98)
o New linking rules. A lot more factors are now involved in the decision
whether two sections have to be coalesced or not:
- target-specific linking rules are checked first
- small-code option forces merging of all code sections
- small-data option forces merging of all data and bss sections
- relative references between two sections
- all sections which have base-relative references from other sections
must be merged (if not denied by -multibase)
- default linking rules: sections must have the same name and type
o (ados/ehf): target specific linking rules:
- unnamed sections are never merged, unless the small-code or small-data
option is given
- sections named _NOMERGE are absolutely never merged
- data and bss sections named __MERGED will be merged, warn about
code sections with this name (but merge them anyway)
o All targets which support it can now take advantage of code-bss and
data-bss sections. In this case only the initalized section contents
is stored in the file, although the section header contains the total
size. The operating system is responsible for clearing the unini-
tialized part after loading.
o Option -sc forces merging of all code sections in an executable.
o Option -sd forces merging of all data and bss sections in an executable.
o Option -multibase prevents auto-merging of sections, which are accessed
base-relative. This means the program uses more than one base register
for accessing small data.
- 0.3b (02.05.98)
o Some experimental code for target elf64alpha, but nothing usable now.
o There were still infinite loops, if an object comes without any section.
o (ados/ehf) A dummy code section will be created, if an output file
has no section at all.
- 0.3a (18.04.98)
o Updated and changed some help texts.
- 0.3 (17.04.98)
o First version, which reliably links ELF32-PowerPC-BigEndian relocatable
object files and library archives. The only ELF output format is
currently a relocatable object, which means only linking with -r works.
o Support for SystemV-style and BSD-style ".a"-archives.
o (elf32ppc) Resolving ADDR16_HA/HI/LO references to a relocatable
symbol didn't work (2 bytes of the next instructions were overwritten).
o Fixed the print routine for function names, in which an error occured.
It didn't work, if symbols had a known size. Additionally, it can
differentiate between 'no type', 'function' and 'object' now.
o Option -R directs vlink to generate short relocs, if the target format
allows this. It is for example supported by ELF and AmigaDos.
Restriction: -R is currently ignored for ados/ehf and I'm not sure if
the implementation is correct for elf32ppc, because "objdump --reloc"
crashes on encountering ".rel" sections. Don't use this option for now!
o Commented out some options in the help text, which are still not supported.
o Implemented full support for little endian file formats, although
vlink currently doesn't know about one (maybe ELF64-Alpha-LittleEndian
will be the first? :).
o (ados/ehf) Absolute local symbols fo